package com.dog.modules.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dog.framework.core.model.PageResult;
import com.dog.modules.system.domain.SysUser;
import com.dog.modules.system.api.query.SysRoleUserQuery;
import com.dog.modules.system.api.query.SysUserQuery;
import com.dog.modules.system.api.vo.SysUserVO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
* @author liuxk
* @description 针对表【sys_user(用户管理)】的数据库操作Service
* @createDate 2024-01-30 14:47:29
*/
public interface SysUserService extends IService<SysUser> {


    PageResult<SysUserVO> page(SysUserQuery query);

    List<SysUserVO> list(SysUserQuery query);

    Boolean save(SysUserVO vo);

    void update(SysUserVO vo);

    void delete(List<Long> idList);

    SysUserVO getByMobile(String mobile);

    SysUserVO getByUsername(String username);

    /**
     * 修改密码
     *
     * @param id          用户ID
     * @param newPassword 新密码
     */
    void updatePassword(Long id, String newPassword);

    /**
     * 分配角色，用户列表
     */
    PageResult<SysUserVO> roleUserPage(SysRoleUserQuery query);

    /**
     * 批量导入用户
     *
     * @param file     excel文件
     * @param password 密码
     */
    void importByExcel(MultipartFile file, String password);

    /**
     * 导出用户信息表格
     */
    void export();


}
